/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.zapateriaLes.bl.CategoriaBlLocal;
import mx.its.dsw2.zapateriaLes.bl.ProductosBlLocal;
import mx.its.dsw2.zapateriaLes.modelo.Categoria;
import mx.its.dsw2.zapateriaLes.modelo.Productos;

/**
 *
 * @author lesly
 */
@ManagedBean
@SessionScoped
public class ProductosBean implements Serializable{
    @EJB
    private CategoriaBlLocal categoriaBl;

    @EJB
    private ProductosBlLocal productosBl;
    private Productos producto;
    private List<Productos> lista;
    private List<Productos> listaProd;
    private List<Categoria> listaCate;
    private int idCategoria;
    private int categorySelect;
    
    
    private String accion = " ";

  
    
    public ProductosBean() {
    }

    public List<Categoria> getListaCate() {
       // listaCate=categoriaBl.getAll();
        return listaCate;
    }

    public void setListaCate(List<Categoria> listaCate) {
        this.listaCate = listaCate;
    }

    public int getCategorySelect() {
        return categorySelect;
    }

    public void setCategorySelect(int categorySelect) {
        this.categorySelect = categorySelect;
    }

    public Productos getProducto() {
        return producto;
    }

    public void setProducto(Productos producto) {
        this.producto = producto;
    }

    public List<Productos> getLista() {
        lista=productosBl.getAll();
        return lista;
    }

    public List<Productos> getListaProd() {
        lista=productosBl.getAll();
        return listaProd;
    }

    public void setListaProd(List<Productos> listaProd) {
        this.listaProd = listaProd;
    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            productosBl.register(producto,listaCate);
        } else {
            if (accion.equalsIgnoreCase("Editar")) {
                productosBl.modify(producto,listaCate);
            } else {
                if (accion.equalsIgnoreCase("Eliminar")) {
                    productosBl.delete(producto);
                }
            }
        }
        accion = " ";
        return "ProductosLista";
    }

    public void prepararNuevo(ActionEvent evnt) {
        accion = "Nuevo";
        listaCate = new ArrayList<Categoria>();
        producto = new Productos();
        listaCate.clear();
    }

     public String procesarSeleccion() {
       // book.setIdAutor(autorBl.findById(authorSelect));
        producto.setCategoria(categorySelect);
        return "ProductosConfirmar";
    }
    
    public String prepararEditar(ActionEvent evnt) {
        accion = "Editar";
        int index = Integer.parseInt(evnt.getComponent().getClientId().split(":")[2]);
        producto = lista.get(index);
        listaCate=categoriaBl.obtenerListaPorProducto(producto);
        return "ProductosCrearEditar";
    }

    public void prepararEliminar(ActionEvent evnt) {
        accion = "Eliminar";
        int index = Integer.parseInt(evnt.getComponent().getClientId().split(":")[2]);
        productosBl.delete(producto);
    }
    
    public String prosesarRegresar(){
    if(accion.equalsIgnoreCase("Nuevo")|| accion.equalsIgnoreCase("Editar")){
    return "ProductosCrearEditar";
    }else{
    return "ProductosLista";
    }
    }
     public void agregarCategoria(ActionEvent evnt){
         System.out.println(categoriaBl.findById(categorySelect));
    listaCate.add(categoriaBl.findById(categorySelect));
    
    }
}